package com.example.demoes.entity;

import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import java.util.Date;

/**
 * Spring Data Elasticsearch核心
 *
 * 1、@Document注解
 *     属性：
 *         1、indexName 索引名称
 *         2、refreshInterval 索引刷新间隔时间
 *         3、indexStoreType 索引存储类型，一般使用niofs
 *         4、shards 分片数，一般等于elasticsearch节点数
 *         5、replicas 副本数，一般等于shards - 1
 * ————————————————
 * 版权声明：本文为CSDN博主「李小熊Zz」的原创文章，遵循CC 4.0 BY-SA版权协议，转载请附上原文出处链接及本声明。
 * 原文链接：https://blog.csdn.net/qq_37743433/article/details/105414974
 */
@Data
@Document(indexName = "demo", refreshInterval = "30s", indexStoreType = "niofs", shards = 1, replicas = 0)
public class DemoDO {

    //@Id注解 属性级别注解，标注变量映射到index中document的id字段
    @Id
    private String id;

    @Field(type = FieldType.Keyword)
    private String name;

    private Integer age;
    private String nickName;

    @Field(type = FieldType.Keyword,analyzer = "ik_smart")
    private String device;

    private Date lastLoginDate;

    //区分大写查询 使用了.keyWord
//    @Field(type = FieldType.Keyword)
    private Long  ts;

}
